iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
生成式 AI

用AI寫程式也是要點本事的系列 第 20

音檔,除了格式檔頭以外,的各種學問...

  • 分享至 

  • xImage
  •  

final riffHeader = createRiffHeader(data.length, 1, 2, 44100, 176400, 4, 16);

用這方法取得檔頭後,將它跟音訊檔raw data一起結合成新的檔案吧!


final riffData = Uint8List(riffHeader.lengthInBytes + data.length);
riffData.setRange(0, riffHeader.lengthInBytes, riffHeader.buffer.asUint8List());
riffData.setRange(riffHeader.lengthInBytes, riffData.length, data);

存檔....成功!
趕快用作業系統的播放器測試看看!

「啪!」喇叭只發出了這樣簡單的一聲,連個雜訊都沒有。

怎麼回事?

原來,wave音檔的檔頭其實還要寫入各種關於這份raw data的各種屬性參數,「1, 2, 44100, 176400, 4, 16」這段數值就是這個參數。

簡單來說,它定義了「幾聲道」「音訊品質」等資料。而....這份數值並不是我所輸入的音訊檔raw data的資料,播放結果自然會失敗。

好啦!我要怎麼知道我的raw data真正的屬性呢?

(直接講答案:所有的手段在FlutterWeb版上都不適用啊!)


上一篇
存起來的「生肉」錄音檔無法播放
下一篇
API是什麼?
系列文
用AI寫程式也是要點本事的30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言